package cn.heyige.backend.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "文本起卦请求")
public class TextDivinationRequest {
    
    @NotBlank(message = "占卜问题不能为空")
    @Size(max = 200, message = "占卜问题不能超过200字符")
    @Schema(description = "占卜问题", example = "今年的事业发展怎么样？")
    private String question;
    
    @NotBlank(message = "输入文本不能为空")
    @Size(max = 500, message = "输入文本不能超过500字符")
    @Schema(description = "输入文本内容", example = "今年的事业发展怎么样")
    private String inputText;
    
    @Schema(description = "来源类型", allowableValues = {"VOICE", "TEXT", "OCR"}, example = "TEXT")
    private String sourceType = "TEXT";
    
    @Schema(description = "算法类型", allowableValues = {"TEXT_HASH", "KEYWORD_EXTRACT"}, example = "TEXT_HASH")
    private String algorithm = "TEXT_HASH";
    
    @Schema(description = "是否进行NLP分析", example = "false")
    private Boolean nlpAnalysis = false;
}